home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / nethack.lha / nethack-3.1 / include / align.h next >
C/C++ Source or Header  |  1993-01-17  |  912b  |  39 lines

  1. /*    SCCS Id: @(#)align.h    3.1    91/12/29    */
  2. /* Copyright (c) Mike Stephenson, Izchak Miller  1991.          */
  3. /* NetHack may be freely redistributed.  See license for details. */
  4.  
  5. #ifndef ALIGN_H
  6. #define ALIGN_H
  7.  
  8. typedef schar    aligntyp;    /* basic alignment type */
  9.  
  10. typedef struct    align {        /* alignment & record */
  11.     aligntyp    type;
  12.     int        record;
  13. } align;
  14.  
  15. #define ALIGNLIM    (5L + (moves/200L))    /* bounds for "record" */
  16.  
  17. #define A_NONE          (-128)    /* the value range of type */
  18.  
  19. #define A_CHAOTIC    (-1)
  20. #define A_NEUTRAL     0
  21. #define A_LAWFUL     1
  22.  
  23. #define A_COALIGNED     1
  24. #define A_OPALIGNED    (-1)
  25.  
  26. #define AM_NONE         0
  27. #define AM_CHAOTIC     1
  28. #define AM_NEUTRAL     2
  29. #define AM_LAWFUL     4
  30.  
  31. #define AM_MASK         7
  32.  
  33. #define Amask2align(x)    ((aligntyp) ((!(x)) ? A_NONE \
  34.              : ((x) == AM_LAWFUL) ? A_LAWFUL : (x) - 2))
  35. #define Align2amask(x)    (((x) == A_NONE) ? AM_NONE \
  36.              : ((x) == A_LAWFUL) ? AM_LAWFUL : (x) + 2)
  37.  
  38. #endif /* ALIGN_H */
  39.